System and method for determining an optimized schedule of a production line

ABSTRACT

A method determines an optimized production schedule of a production line including a hybrid multi-cluster tool formed by a plurality of single-arm tools and dual-arm tools interconnected with each other. The method includes determining time for individual operations of a robotic arm and a processing module in the plurality of single-arm tools and dual-arm tools; determining robot waiting time of the single-arm tools and dual-arm tools based on the time for individual operations and different connection relationships of the plurality of single-arm tools and dual-arm tools; determining whether the optimized production schedule exists using the determined waiting time, wherein the optimized production schedule only exists if the hybrid multi-cluster tool is process-dominant where the robot activity time of the plurality of single-arm tools and dual-arm tools is substantially shorter than processing time at the processing module; and determining the optimized production schedule if the optimized production schedule exists.

TECHNICAL FIELD

The present invention relates to a system and method for determining an optimized schedule of a production line and particularly, although not exclusively, to a system and method for determining an optimized schedule of a semiconductor production line with a hybrid multi-cluster tool having both single arm tools and dual arm tools.

BACKGROUND

Cluster tools have been widely used to process objects such as semiconductor wafers for fabricating microelectronic components. Generally, a cluster tool is a robotic processing system that includes loading and unloading modules and a number of different processing modules (PM) placed around a central automated handling unit with one or more robotic arms. It operates by using the robotic arm to transfer the object to be processed from the loading/unloading loadlocks to different processing modules in sequence so as to perform different mechanical or chemical processing, and then back to the loading/unloading loadlocks. The time for the object to stay in the processing module depends on the time needed for a specific processing procedure.

Multi-cluster tools formed by interconnecting cluster tools have also been used for processing and manufacturing objects. Comparing with a single cluster tool, a multi-cluster tool may provide more PMs for manufacturing products of high degree of complexity. In some cases, these tools may also simultaneously process more than one product to provide improved processing efficiency.

Although multi-cluster tools appear to offer some advantages over single-cluster tools, they may include combinations of different types of single-cluster tools (e.g., both single-arm cluster tools and dual-arm cluster tools) which are of different constructions and different scheduling mechanisms. As a result, it would be difficult to determine an optimal scheduling of these tools for maximum operation efficiency.

SUMMARY OF THE INVENTION

In accordance with a first aspect of the present invention, a method is provided for determining an optimized production schedule of a production line, the production line comprises a hybrid multi-cluster tool formed by a plurality of single-arm tools and dual-arm tools interconnected with each other; wherein each single-arm tool includes one robotic arm for manipulating an object and at least one processing module for processing the object or a buffering module for holding the object, and each dual-arm tool includes two robotic arms for manipulating an object and at least one processing module for processing the object or a buffering module for holding the object; single-arm tools and dual-arm tools are connected with each other through at least one buffering module; the method comprising the steps of: determining time for individual operations of the robotic arm and the processing module in the plurality of single-arm tools and dual-arm tools; determining robot waiting time of the single-arm tools and dual-arm tools based on the time for individual operations and different connection relationships of the plurality of single-arm tools and dual-arm tools; determining whether the optimized production schedule exists using the determined robot waiting time, wherein the optimized production schedule only exists if the hybrid multi-cluster tool is process-dominant where robot activity time of the plurality of single-arm tools and dual-arm tools is substantially shorter than processing time at the processing module; and determining the optimized production schedule if the optimized production schedule exists.

In one embodiment of the first aspect, the step of determining the time for individual operations of the robotic arm and the processing module in the plurality of single-arm tools and dual-arm tools comprises the step of determining one or more of: a time required for the robotic arm of the single-arm tool to load or unload the object; a time required for the robotic arms of the dual-arm tool to swap; a time required for the robotic arm of the single-arm tool or the dual-arm tool to move while holding the object; a time required for the robotic arm of the single-arm tool to move without holding an object; a time required for processing the object in the processing module of the single-arm tool or the dual-arm tool; a time required for resting the object in the processing module of the single-arm tool or the dual-arm tool; a time required for the robotic arm of the single-arm tool to wait before unloading the object; a time required for the robotic arms of the dual-arm tool to wait at the processing module of the dual-arm tool; and a time required for the robotic arms of the dual-arm tool to wait during swap at the processing module of the dual-arm tool.

In one embodiment of the first aspect, the different connection relationships comprise: an upstream downstream relationship that includes an upstream single-arm tool and downstream single-arm tool connection, an upstream single-arm tool and a downstream dual-arm tool connection, an upstream dual-arm tool and a downstream single-arm tool connection, or an upstream dual-arm tool and a downstream dual-arm tool connection; and a number relationship that includes a number of adjacent single-arm or the dual-arm tools of which the respective single-arm tool or the dual-arm tool is connected to.

In one embodiment of the first aspect, the step of determining whether the optimized production schedule exists using the time for individual operations and the robot waiting time comprises: calculating an activity time of each of the single-arm tools and dual-arm tools in a production cycle without robot waiting using the time for individual operations; calculating a fundamental period of each of the single-arm tools and dual-arm tools using the time for individual operations; determining a maximum fundamental period from the calculated fundamental periods; determining a robot waiting time of each of the plurality of single-arm tools and dual-arm tools using the maximum fundamental period; evaluating the robot waiting time determined so as to determine if the optimized production schedule exists.

In one embodiment of the first aspect, the step of determining the optimized production schedule comprises setting an optimal robot waiting time for each of the plurality of single-arm tools and dual-arm tools based on the determination results without interfering with the operation of the buffering modules.

In one embodiment of the first aspect, the hybrid multi-cluster tool has a non-cyclic treelike structure with at least one of the single arm tools and dual arm tools being connected with three or more adjacent single arm tools and dual arm tools.

In one embodiment of the first aspect, the optimized production schedule comprises a shortest time for completion of a cycle of production of the object.

In one embodiment of the first aspect, the object is a semiconductor and the production line is a semiconductor manufacturing line.

In accordance with a second aspect of the present invention, there is provided a computerized system arranged to determine an optimized production schedule of a production line, the production line comprises a hybrid multi-cluster tool formed by a plurality of single-arm tools and dual-arm tools interconnected with each other; wherein each single-arm tool includes one robotic arm for manipulating an object and at least one processing module for processing the object or a buffering module for holding the object, and each dual-arm tool includes two robotic arms for manipulating an object and at least one processing module for processing the object or a buffering module for holding the object; each single-arm tools and dual-arm tools are connected with each other through at least one buffering module; the computerized system comprises a Petri-Net (PN) model computation module arranged for: determining time for individual operations of the robotic arm and the processing module in the plurality of single-arm tools and dual-arm tools; determining the robot waiting time of the single-arm tools and dual-arm tools based on the time for individual operations and different connection relationships of the plurality of single-arm tools and dual-arm tools; determining whether the optimized production schedule exists using the determined robot waiting time, wherein the optimized production schedule only exists if the hybrid multi-cluster tool is process-dominant where the robot activity time of the plurality of single-arm tools and dual-arm tools is substantially shorter than processing time at the processing module; determining the optimized production schedule if the optimized production schedule exists.

In one embodiment of the second aspect, the step of determining the time for individual operations of the robotic arm and the processing module in the plurality of single-arm tools and dual-arm tools comprises determining one or more of: a time required for the robotic arm of the single-arm tool to load or unload the object; a time required for the robotic arms of the dual-arm tool to swap; a time required for the robotic arm of the single-arm tool or the dual-arm tool to move while holding the object; a time required for the robotic arm of the single-arm tool to move without holding the object; a time required for processing the object in the processing module of the single-arm tool or the dual-arm tool; a time required for resting the object in the processing module of the single-arm tool or the dual-arm tool; a time required for the robotic arm of the single-arm tool to wait before unloading the object; a time required for the robotic arms of the dual-arm tool to wait at the processing module of the dual arm tool; and a time required for the robotic arms of the dual-arm tool to wait during swap at the processing module of the dual arm tool.

In one embodiment of the second aspect, the different connection relationships comprise: an upstream downstream relationship that includes an upstream single-arm tool and downstream single-arm tool connection, an upstream single-arm tool and a downstream-dual arm tool connection, an upstream dual-arm tool and a downstream single-arm tool connection, or an upstream dual-arm tool and a downstream dual-arm tool connection; and a number relationship that includes a number of adjacent single-arm or the dual-arm tools of which the respective single-arm tool or the dual-arm tool is connected to

In one embodiment of the second aspect, the Petri-Net (PN) model computation module is arranged to determine whether the optimized production schedule exists using the time for individual operations and the waiting time by: calculating an activity time of each of the single-arm tools and dual-arm tools in a production cycle without robot waiting using the time for individual operations; calculating a fundamental period of each of the single-arm tools and dual-arm tools using the time for individual operations;

determining a maximum fundamental period from the calculated fundamental periods; determining the robot waiting time of each of the plurality of single-arm tools and dual-arm tools using the maximum fundamental period; evaluating the waiting time determined so as to determine if the optimized production schedule exists.

In one embodiment of the second aspect, the Petri-Net (PN) model computation module is arranged to determine the optimized production schedule by setting an optimal robot waiting time for each of the plurality of single-arm tools and dual-arm tools based on the determination results without interfering with the operation of the buffering modules.

In one embodiment of the second aspect, the hybrid multi-cluster tool has a non-cyclic treelike structure with at least one of the single-arm tools and dual-arm tools being connected with three or more adjacent single-arm tools and dual-arm tools.

In one embodiment of the second aspect, the optimized production schedule comprises a shortest time for completion of a cycle of production of the object.

In one embodiment of the second aspect, the object is a semiconductor and the production line is a semiconductor manufacturing line.

It is an object of the present invention to address the above needs, to overcome or substantially ameliorate the above disadvantages or, more generally, to provide a.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present invention will now be described, by way of example, with reference to the accompanying drawings in which:

FIG. 1 shows a hybrid multi-cluster tool comprising 9 single-arm and dual-arm tools arranged in a tree-like structure in accordance with one embodiment of the present invention;

FIG. 2 is a Petri net (PN) model for a single-arm tool of FIG. 1;

FIG. 3 is a Petri net (PN) model for a dual-arm tool of FIG. 1;

FIG. 4A is a Petri net (PN) model for a buffering module arranged between two dual-arm tools of FIG. 1;

FIG. 4B is a Petri net (PN) model for a buffering module arranged between an upstream single-arm tool and a downstream dual-arm tool of FIG. 1;

FIG. 4C is a Petri net (PN) model for a buffering module arranged between an upstream dual-arm tool and a downstream single-arm tool of FIG. 1;

FIG. 4D is a Petri net (PN) model for a buffering module arranged between two single-arm tools of FIG. 1; and

FIG. 5 shows a Gantt chart of an operation schedule of Example 1 in accordance with one embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Multi-cluster tools generally comprise a number of single-cluster tools connected by buffering modules with a capacity of one or two, and they may have linear or non-cyclic treelike topology. A multi-cluster tool with K (≥2) individual cluster tools is generally referred to as a K-cluster tool. Furthermore, if these individual tools include both single and dual-arm tools, then the multi-cluster tool is of a hybrid type.

An exemplary treelike hybrid 9-cluster tool 100 linked by buffering modules 106 is illustrated in FIG. 1. As shown in FIG. 1, the exemplary 9-cluster tool 100 includes nine interconnected cluster tools C₁-C₉ each having a robotic arm R₁-R₉ (single-arm: R₁, R₃, R₄, R₅, R₆, R₈; dual-arm: R₂, R₇, R₉). Cluster tool C₁ includes a loadlock 108 with loading and unloading stations. All cluster tools except C₅ further includes a number of processing modules 104. All cluster tools are connected with each other through buffering modules 106. In the present embodiment and in the following discussion, C₁ with loadlocks 108 is called head tool, C_(i), i≠1, is a leaf tool if it connects with only one adjacent tool, and C_(i), i≠1 is a fork tool if it connects at least three adjacent tools.

In the present invention, a Petri net (PN) model has been developed for determining and evaluating an optimized schedule of a production line formed by a treelike hybrid multi-cluster tool, such as that shown in FIG. 1.

In one embodiment, the present invention provides a method for determining an optimized production schedule of a production line, the production line comprises a hybrid multi-cluster tool formed by a plurality of single-arm tools and dual-arm tools interconnected with each other; wherein each single-arm tool includes one robotic arm for manipulating an object and at least one processing module for processing the object or a buffering module for holding the object, and each dual-arm tool includes two robotic arms for manipulating an object and at least one processing module for processing the object or a buffering module for holding the object; the single-arm tools and dual-arm tools are connected with each other through at least one buffering module; the method comprising the steps of: determining time for individual operations of the robotic arm and the processing module in the plurality of single-arm tools and dual-arm tools; determining waiting time of the single-arm tools and dual-arm tools based on the time for individual operations and different connection relationships of the plurality of single-arm tools and dual-arm tools; determining whether the optimized production schedule exists using the determined waiting time, wherein the optimized production schedule only exists if the hybrid multi-cluster tool is process-dominant where the robot activity time of the plurality of single-arm tools and dual-arm tools is substantially shorter than processing time at the processing module; and determining the optimized production schedule if the optimized production schedule exists.

Petri Net (PN) Modeling

The following assumptions are made in the embodiment of the present invention:

-   1) a buffering module has no processing function and its capacity is     one; -   2) for each step, only one process module is configured for product     (e.g., semiconductor wafer) processing and, only one product can be     processed in a process module at a time; -   3) only one type of product is processed with an identical recipe,     and they visit a process module only once except entering a     buffering module at least twice; -   4) the robots' task time is constant; and -   5) besides buffering module, there is at least one processing step     in each individual tool except the fork and leaf tool. The fork tool     may have no processing step and the leaf tool has at least two     process modules.

Let

_(n)={1, 2, . . . , n}, Ω_(n)={0}∪

_(n), and C_(i) and R_(i), i∈

_(K), denote the i-th cluster tool and its robot, respectively, where C₁ with load-locks is the head tool, C_(i), i≠1 is the leaf tool if it connects with only one adjacent tool, and C_(i), i≠1 is the fork tool if it connects at least three adjacent tools. Further, let L={i|C_(i) is a leaf tool} be the index set of leaf tools. For the tool shown in FIG. 1, C₃, C₇, and C₉ are leaf tools, while C₂ and C₅ are fork tools. To simplify the presentation so as to clearly illustrate the invention, the tools are numbered such that for any two adjacent tools C_(k) and C_(i), k∉L and i∈

_(K)\{1}, with C_(k)/C_(i) being the upstream/downstream one where i>k. It should be noted that, however, k and i are not necessary in a consecutive order as shown in FIG. 1. In one example, PS₁₀ is used to denote the loadlocks in C₁ and PS_(ij) denote Step j (except the buffering modules) in C_(i), i∈

_(K) and j∈

_(r).

A buffering module connecting C_(k) and C_(i) can be considered as the outgoing module for C_(k) and the incoming module for C_(i), respectively. Let n[i] represent the index for the last step in C_(i), i∈

_(K). Then, the number of steps in C_(i), including the incoming and outgoing steps, is n[i]+1. Further, let f[k] (1≤f[k]≤n[k]) denote the number of outgoing modules in C_(k), k∉L, and these outgoing modules are denoted as PS_(k(b[k]) _(_) ₁₎, PS_(k(b[k]) _(_) ₂₎, . . . , and PS_(k(b[k]) _(_) _(f[k])) with b[k]_1<b[k]_2< . . . <b[k]_f[k]. When f[k]>1, C_(k) is a fork tool, otherwise it is not. It should be pointed out that b[k]_1, b[k]_2, . . . and b[k]_f[k] may not be in a consecutive order, in other words, b[k]_2=b[k]_1+1 may not hold. The incoming module for C_(i) is denoted as PS_(i0). In this way, the n[k]+1 steps in C_(k) are denoted as PS_(k0), PS_(k1), . . . , PS_(k(b[k]) _(_) ₁₎, PS_(k((b[k]) _(_) ₁₎₊₁₎, . . . , PS_(k(b[k]) _(_) ₂₎, . . . , PS_(k(n[k])), respectively. Notice that b[k]_1 can be 1 if it is Step 1 and b[k]_f[k] can be n[k] if it is the last step. Hence, the route of a product in FIG. 1 is denoted as: PS₁₀→PS₁₁→ . . . →PS_(1(b[1]) _(_) ₁₎ (PS₂₀)→PS_(2(b[2]) _(_) ₁₎(PS₃₀)→PS₃₁→ . . . →PS₃₀ (PS_(2(b[2]) _(_) ₁₎)→ . . . →PS_(2(b[2]) _(_) ₂₎(PS₄₀)→ . . . →PS_(4(b[4]) _(_) ₁₎(PS₅₀)→ . . . →PS₅₀ (PS_(4(b[4]) _(_) ₁₎)→ . . . →PS₄₀ (PS_(2(b[2]) _(_) ₂₎)→ . . . →PS₂₀ (PS_(1(b[1]) _(_) ₁₎)→PS₁₀.

A. Petri Net (PN) for Hybrid K-Cluster Tools

To model a hybrid K-cluster tool, the behavior of individual tools and buffering modules need to be modeled. Since the behavior of a single-arm tool is different from that of a dual-arm tool, their models are presented separately. FIGS. 2 and 3 illustrated a Petri net (PN) model for a single arm tool and a dual arm tool of FIG. 1 respectively. In the following discussion, a token and a product are used interchangeably.

For C_(i), regardless of whether it is a single or dual-arm tool, places r_(i) and p_(ij) model R_(i) and PS_(ij), i∈

_(K), j∈Ω_(n[i]), respectively. For a single-arm tool C_(i), as shown in FIG. 2, place q_(ij) models R_(i)'s waiting before unloading a token (product) from p_(ij), j∈Ω_(n[i]), d_(ij) and z_(ij) model R_(i)'s moving with a product held from Steps j to j+1 (or Step 0 if j=n[i]) and loading a product into p_(ij), j∈Ω_(n[i]), respectively. Transitions u_(ij) and t_(ij) model R_(i)'s removing a product from p_(ij) and dropping a product into p_(ij), j∈Ω_(n[i]), respectively. Transition x_(ij),j∈Ω_(n[i]), models R_(i)'s moving from Steps j to j+1 (or Step 0 if j=n[i]) with a product carried. Transition y_(ij), j∈Ω_(n[i])\{0, 1}, models R_(i)'s moving from Steps j+2 to j without carrying a product, or from Step 0 to n[i]−1 if j=0, or from Step 1 to n[i] if j=1.

For a dual-arm tool C_(i), as shown in FIG. 3, place q_(ij) models R_(i)'s waiting during swap at p_(ij), j∈Ω_(n[i]), and d_(ij) and z_(ij) model the state that a swap ends and R_(i)'s waiting before unloading a product from p_(ij), j∈Ω_(n[i]), respectively. Transitions t_(ij) and u_(ij) model R_(i)'s loading a product into p_(ij) and unloading a product from p_(ij), j∈Ω_(n[i]), respectively. By firing u_(ij), two tokens go to q_(ij), representing that both arms hold a product and wait. Transition x_(ij), j∈Ω_(n[i]), models R_(i)'s moving from Steps j to j+1 (or Step 0 if j=n[i]) with a product carried.

For a buffering module that links C_(k) and C_(i), k∉L, i∈

_(K)\{1}, with C_(i) being the downstream one, there are four different cases: 1) both C_(k) and C_(i) are dual-arm tools (D-D); 2) C_(k) and C_(i) are single and dual-arm tools, respectively (S-D); 3) C_(k) and C_(i) are dual and single-arm tools, respectively (D-S); and 4) both C_(k) and C_(i) are single-arm tools (S-S). As discussed above, the buffering module connecting C_(k) and C_(i) can be denoted as PS_(k(b[k]) _(_) _(q)) for C_(k), or the q-th OM, 1≤q≤f[k], in C_(k). This buffering module can be also denoted as PS_(i0) in C_(i). Then, it is modeled by p_(k(b[k]) _(_) _(q)) and p_(i0) for C_(k) and C_(i), respectively, with p_(k(b[k]) _(_) _(q))=p_(i0) and K(p_(k(b[k]) _(_) _(q)))=K(p_(i0))=1. The PN models of these four different cases are shown in FIG. 4. For the D-D case, Step b[k]_q for C_(k) is modeled by z_(k(b[k]) _(_) _(q)), u_(k(b[k]) _(_) _(q))), p_(k(b[k]) _(_) _(q)), q_(k(b[k]) _(_) _(q)), t_(k(b[k]) _(_) _(q)), and d_(k(b[k]) _(_) _(q)) together with arcs (z_(k(b[k]) _(_) _(q)), u_(k(b[k]) _(_) _(q))), (u_(k(b[k]) _(_) _(q)), q_(k(b[k]) _(_) _(q))), (q_(k(b[k]) _(_) _(q)), t_(k(b[k]) _(_) _(q))), t_(k(b[k]) _(_) _(q)), d_(k(b[k]) _(_) _(q))), (t_(k(b[k]) _(_) _(q)), p_(k(b[k]) _(_) _(q))), and (p_(k(b[k]) _(_) _(q)), u_(k(b[k]) _(_) _(q))). Step 0 for C_(i) is modeled by z_(i0), u_(i0), q_(i0), p_(i0), t_(i0), and d_(i0) together with arcs (z_(i0), u_(i0)), (u_(i0), q_(i0)), (q_(i0), t_(i0)), (t_(i0), p_(i0)), (p_(i0), u_(i0)), and (t_(i0), d_(i0)) as shown in FIG. 4A. Similarly, the models for S-D, D-S and S-S are obtained as shown in FIGS. 4B-4D respectively.

With the PN structure developed, by putting a V-token representing a virtual product (not real one), the initial marking M₀ of the PN model is set as follows.

If C₁ is a single-arm tool, set M₀(r₁)=0; M₀(p₁₀)=n, representing that there are always products to be processed; M₀(p_(1(b[1]) _(_) ₁₎)=0 and M₀(p_(1j))=1, j∈

_(n[1])\{b[1]_1}; M₀(z_(1j))=M₀(d_(1j))=0, j∈Ω_(n[1]); M₀(q_(1j))=0, j∈Ω_(n[1])\{(b[1]_1)−1}; and M₀(q_(1((b[1]) _(_) ¹⁾⁻¹⁾)=1, meaning that R₁ is waiting at PS_(1((b[1]) _(_) ¹⁾⁻¹⁾ for unloading a product there.

If C₁ is a dual-arm tool, set M₀(r₁)=1; M₀(P₁₀)=n; M₀(p_(1j))=1, j∈

_(n[1]); M₀(q_(1j))=M₀(d_(1j))=0, j∈Ω_(n[1]); M₀(z_(1j))=0, j∈Ω_(n[i])\{b[1]_1}; and M₀(z_(1(b[1]) _(_) ₁₎)=1, meaning that R₁ is waiting at PS_(1(b[1]) _(_) ₁₎ for unloading a product there.

For C_(i), i∈

_(K)\{1}, if it is a single-arm tool, set M₀(r_(i))=0; M₀(z_(ij))=M₀(d_(ij))=0,j∈Ω_(n[i]); M₀(p_(i1))=0 and M₀(p_(ij))=1, j∈

_(n[i])\{1}; M₀(q_(ij))=0, j∈

_(n[i]); and M₀(q_(i0))=1, implying that R_(i) is waiting at PS_(i0) for unloading a product there. If C_(i), i∈

_(K)\{1}, is a dual-arm tool, set M₀(r_(i))=1; M₀(p_(ij))=1,j∈

_(n[i]); M₀(q_(ij))=M₀(d_(ij))=0,j∈Ω_(n[i]); M₀(z_(ij))=0, j∈

_(n[i]); and M₀(z_(i0))=1, implying that R_(i) is waiting at PS_(i0) for unloading a product there. It should be pointed out that, for any adjacent C_(k) and C_(i), k∈

_(K-1), at M₀, it is assumed that the token in p_(i0) enables u_(k(b[k]) _(_) _(q)), but not u_(i0).

In FIGS. 4A-4D, both u_(k(b[k]) _(_) _(q)) and u_(i0) are the output transitions of p_(i0), leading to a conflict. Notice that a token entering p_(i0) by firing t_(k(b[k]) _(_) _(q)) should enable u_(i0), while the one entering p_(i0) by firing t_(i0) should enable u_(k(b[k]) _(_) _(q)). To distinguish such cases, colors have been introduced into the model to make it conflict-free.

Definition 2.1: Define the color of a transition t_(i) as C(t_(i))={c_(i)}. From Definition 2.1, the colors for u_(i0) and u_(k(b[k]) _(_) _(q)) are c_(i0) and c_(k(b[k]) _(_) _(q)), respectively. Then, the color for a token can be defined as follows.

Let ●t_(i) be the set of places of transition t_(i). We present the following definition.

Definition 2.2: A token in p∈●t_(i) that enables t_(i) has the same color of t_(i)'s, i.e., {c_(i)}. For example, a token that enters p_(i0) by firing t_(k(b[k]) _(_) _(q)) has color c_(i0), while the one that enters p_(i0) by firing t_(i0) has color c_(k(b[k]) _(_) _(q)). In this way, the PN is made conflict-free.

Based on the above discussion, the PN model for a dual-arm fork tool C_(i) is deadlock-free but the PN model for a single-arm non-fork tool C_(i) is deadlock-prone. To make the model deadlock-free, the following control policy is introduced.

Definition 2.3: For the PN model of a single-arm tool C_(i), i∈

_(K), at marking M, transition y_(ij), j∈Ω_(n[i])\{n[i], (b[i]_q)−1}, q∈

_(f[i]), is control-enabled if M(p_(i(j+1)))=0; y_(i((b[i]) _(_) _(q)−1)) is control-enabled if transition t_((i((b[i]) _(_) _(q)−1)) has just been executed; y_(i(n[i])) is control-enabled if transition t_(i1) has just been executed.

By using this control policy, the PN for a single-arm non-fork tool C_(i) is deadlock-free. For a single-arm fork tool C_(i), assume that, at M, u_(i0) is enabled. After u_(i0) fires, R_(i) performs the following activities:

x_(i0)→t_(i1)→y_(i(n[i]))→u_(i(n[i]))→x_(i(n[i]))→t_(i0)→y_(i(n[i]−1))(M(p_(i(n[i])))=0)→ . . . →y_(i((b[i])) _(_) _(q)) (M(p_(i((b[i]) _(_) _(q)+1))))=0)→u_(i((b[i])) _(_) _(q))→x_(i((b[i])) _(_) _(q))→t_(i((b[i]) _(_) _(q)+1))→y_(i((b[i]) _(_) _(q)−1))) (t_(i((b[i]) _(_) _(q)+1)) has just been executed)→ . . . y_(i0)(M(p_(i1))=0)→u_(i0)→x_(i0)

. In this way, a cycle is completed and this process can be repeated. Thus, there is no deadlock. This implies that, by the control policy, the PN for the system is made deadlock-free.

B. Modeling Activity Time

In the PN model developed above, with transitions and places representing activities that take time, time is associated with both transitions and places. Since the activity time taken by single-arm and dual-arm tool is different, it should be modeled for both tools. For both types of tools, the robot activity time is modeled such that the time for the robot to move from one step to another is same, so is the time for the robot to load/unload a product into/from a process module. In the present invention, the activity time is modeled as shown in Table I.

TABLE I Time duration associated with transitions and places in C_(i). Transition Time Tool Symbol or place Action duration type λ_(i) t_(ij)/u_(ij) ∈ T R_(i) loads/unloads a product λ_(i) Single- into/from Step j, j ∈ Ω_(n[i]) arm λ_(i) u_(ij) and R_(i) Swaps at Step j, j ∈ Ω_(n[i]) λ_(i) Dual- t_(ij) ∈ T arm μ_(i) x_(ij) ∈ T R_(i) moves from a step to another μ_(i) Both with a product hold μ_(i) y_(ij)∈ T R_(i) moves from a step to another μ_(i) Single- without a product hold arm α_(ij) p_(ij) ∈ P A product is being processed α_(ij) Both in p_(ij), j∈ Ω_(n[i]) τ_(ij) p_(ij) ∈ P A product is being processed ≥α_(ij) Both and waiting in p_(ij), j∈ Ω_(n[i]) ω_(ij) q_(ij) ∈ P R_(i) waits before unloading a [0, ∞) Single- product from Step j, j ∈ Ω_(n[i]) arm ω_(ij) z_(ij)∈ P R_(i) waits p_(ij), j∈ Ω_(n[i]) [0, ∞) Dual- arm ω_(ij1) q_(ij)∈ P R_(ij) waits during swap at p_(ij), j∈ 0 Dual- Ω_(n[i]) arm d_(ij) ∈ P No robot activity is associated 0 Both z_(ij) ∈ P No robot activity is associated 0 Single- arm Timeliness Analysis of Individual Tools

With the PN model, the following presents the temporal properties of individual tools such that a schedule can be parameterized by robot waiting time. For a single-arm tool C_(i), i∈

_(K), the time taken for processing a product at Step j, j∈

_(n[i]), is θ_(ij)=α_(ij)+4λ_(i)+3μ_(i)+ω_(i(j−1)).  (3.1) For Step 0, as α_(i0)=0, θ_(i0)=α_(i0)+4λ_(i)+3μ_(i)+ω_(i(n[i]))=4λ_(i)+3μ_(i)+ω_(i(n[i])).  (3.2)

With the robot waiting time being removed, the time taken for completing a product at Step j is: ξ_(ij)=α_(ij)+4λ_(i)+3μ_(i) , j∈Ω _(n[i]).  (3.3)

To make a schedule feasible, a product should stay at process module PM_(ij) for τ_(ij) (≥α_(ij)) time units and, by replacing α_(ij) with τ_(ij), the cycle time at Step j in C_(i) is: π_(ij)=τ_(ij)+4λ_(i)+3μ_(i)+ω_(i(j−1)) , j∈

_(n[i]).  (3.4) and π_(i0)=τ_(i0)+4λ_(i)+3μ_(i)+ω_(i(n[i])).  (3.5)

The robot cycle time for a single-arm tool C_(i) is: ψ_(i)=2(n[i]+1)(λ_(i)+μ_(i))+Σ_(j=0) ^(n[i])ω_(ij)=ψ_(i1)+ψ_(i2).  (3.6) where ψ_(i1)=2(n[i]+1) (λ_(i)+μ_(i)) is the robot's activity time in a cycle without waiting and ψ_(i2)=Σ_(j=0) ^(n[i])ω_(ij) is the robot waiting time in a cycle.

For a dual-arm tool C_(i), i∈

_(K), is the time needed for completing a product at Step j, j∈Ω_(n[i]), in C_(i) is: ξ_(ij)=α_(ij)+λ_(i).  (3.7) Similarly, by replacing α_(ij) with τ_(ij) in (3.7), the cycle time at Step j, j∈Ω_(n[i]), in C_(i) is: π_(ij)=τ_(ij)+λ_(i).  (3.8)

The robot cycle time for a dual-arm tool C_(i) is: ψ_(i)=(n[i]+1)(λ_(i)+μ_(i))+Σ_(j=0) ^(n[i])ω_(ij)=ψ_(i1)+ψ_(i2).  (3.9) where ψ_(i1)=(n[i]+1)(λ_(i)+μ_(i)) is the robot cycle time without waiting and ψ_(i2)=Σ_(j=0) ^(n[i])ω_(ij) is the robot's waiting time in a cycle.

As the manufacturing process in each C_(i), i∈

_(K), is serial, in the steady state, the productivity for each step must be same. Thus, C_(i) should be scheduled such that π_(i)=π_(i0)=π_(i1)= . . . =π_(i(n[i]))=ψ_(i).  (3.10)

Notice that both π_(i) and ψ_(i) are functions of ω_(ij)'s, which means that the schedule for C_(i), i∈

_(K), is parameterized by robots' waiting time. Based on the schedule for C_(i), i∈

_(K), to schedule a treelike hybrid K-cluster tool, the key is to determine ω_(ij)'s such that the activities of the multiple robots are coordinated to act in a paced way.

Scheduling the Overall System

A. Schedule Properties

Let Π_(i)=max{ξ_(i0), ξ_(i1), . . . , ξ_(i(n[i])), ψ_(i1)} be the fundamental period (FP) of C_(i), i∈

_(K). If Π_(i)=max{ξ_(i0), ξ_(i1), . . . , ξ_(i(n[i]))}, C_(i) is process-bound; otherwise it is transport-bound. Let Π=max{Π₁, Π₂, . . . , Π_(K)} and assume that Π=Π_(h), 1≤h≤K, or C_(h) is the bottleneck tool. As mentioned above, C_(h) is process-bound in a process-dominant treelike hybrid K-cluster tool. Let Θ denote the cycle time for the system. With π_(i) being the cycle time of C_(i), to obtain a one-product cyclic schedule for a process-dominant treelike hybrid multi-cluster tool, every individual tool must have the same cycle time and it should be equal to the cycle time of the system, i.e., Θ=π_(i) ≥Π, ∀i∈

_(K).  (4.1)

Based on (4.1), to find a one-product cyclic schedule is to schedule the individual tools such that they can act in a paced way. Since both π_(i) and ψ_(i) are functions of ω_(ij)'s, given Θ(≥Π) as cycle time, a one-product cyclic schedule can be obtained by determining ω_(ij)'s for each tool C_(i), i∈

_(K), j∈

_(n[i]). The individual tools are scheduled to be paced, if and only if for any adjacent pair C_(k) and C_(i), k∉L, i∉{1}, linked by PS_(k(b[k]) _(_) _(q)), 1≤q≤f[k], at any marking M: 1) whenever R_(i) (R_(k)) is scheduled to load a product (token) into p_(i0) (p_(k(b[k]) _(_) _(q))), t_(i0) (t_(k(b[k]) _(_) _(q))) is enabled; and 2) whenever R_(i) (R_(k)) is scheduled to unload a product (token) from p_(i0) (p_(k(b[k]) _(_) _(q))), μ_(i0) (μ_(k(b[k]) _(_) _(q))) is enabled. Given Θ=Π, if a one-product cyclic schedule is found, the lower bound of cycle time is achieved.

B. Existence of a One-Product Cyclic Schedule with the Lower Bound of Cycle Time (OSLB)

For a process-dominant linear hybrid K-cluster tool, the conditions under which an OSLB exists are given as follows.

Lemma 4.1: For a process-dominant linear hybrid K-cluster tool, an OSLB exists, if and only if, for any adjacent tool pair C_(i) and C_(i+1), i∈

_(K-1), the following conditions are satisfied by determining ω_(ij)'s and ω_((i+1)l)'s, j∈Ω_(n[i]) and l∈Ω_(n[i+1]). π_(ij)=π_((i+1)l) =Π, j∈Ω _(n[i]) and l∈Ω _(n[i+1]).  (4.2) If C_(i) and C_(i+1) are D-S case Π−λ_(i)≥4λ_(i+1)+3μ_(i+1)+ω_((i+1)(n[i+1])).  (4.3) If C_(i) and C_(i+1) are S-S case Π−(4λ_(i)+3μ_(i)+ω_(i((b[i]) _(_) ¹⁾⁻¹⁾)≥4λ_(i+1)+3μ_(i+1)ω_((i+1)(n[i+1])).  (4.4)

Lemma 4.1 states that, to check the existence of an OSLB, one needs to examine the D-S and S-S cases only. By Lemma 4.1, given Θ=Π, if conditions (4.2)-(4.4) are satisfied, a linear hybrid K-cluster tool can be scheduled such that the individual tools are paced. Notice that Condition (4.2) says that the cycle time of each individual tool is same, while Conditions (4.3) and (4.4) involve the operations of buffering modules only. Hence, although a treelike hybrid K-cluster tool is structurally different from a linear hybrid K-cluster tool, the similar conditions can be obtained for the existence of an OSLB. The following result are obtained.

Theorem 4.1: For a process-dominant treelike hybrid K-cluster tool, an OSLB exists, if and only if for any adjacent pair C_(k) and C_(i), k∉L, i∉{1}, linked by PS_(k(b[k]) _(_) _(q)), the following conditions are satisfied by determining ω_(kj)'s and ω_(il)'s, j∈Ω_(n[k]) and l∈Ω_(n[i]) such that π_(kj)=π_(il) =Π, j∈Ω _(n[k])and l∈Ω _(n[i]).  (4.5) If C_(k) and C_(i) are D-S case Π−λ_(k)≥4λ_(i)+3μ_(i)+ω_(i(n[i])).  (4.6) If C_(k) and C_(i) are S-S case π−(4λ_(k)+3μ_(k)+ω_(k((b[k]) _(_) _(q)−1)))≥4λ_(i)+3μ_(i)+ω_(i(n[i])).  (4.7)

Proof: With the fact that a linear hybrid K-cluster tool is a special case of a treelike hybrid K-cluster tool, it follows from Lemma 4.1 that Conditions (4.5)-(4.7) must be necessary. Thus, it is necessary to show the “if” part only. If a C_(k) in a treelike hybrid K-cluster tool is not a fork, it acts just as an individual tool in a linear hybrid K-cluster tool. Thus, it is only necessary to examine the fork tools.

Assume that C_(k) is a single-arm fork tool and C_(k) _(_) ₁, C_(k) _(_) ₂, . . . , C_(k) _(_) _(f[k]) are the set of its adjacent downstream tools. Based on M₀, it can be assumed that the tool is at marking M with M(r_(k))=0; M(z_(kj))=M(d_(kj))=0, j∈Ω_(n[k]); M(p_(k(b[k]) _(_) ₁₎)=0 and M(p_(kj))=1, j∈

_(n[k])\{b[k]_1}; M(q_(kj))=0,j∈Ω_(n[k])\{(b[k]_1)−1}; and M(q_(k((b[k]) _(_) ¹⁾⁻¹⁾)=1, implying that R_(k) is waiting at PS_(k((b[k]) _(_) ¹⁾⁻¹⁾for unloading a product there. Then, if (4.5) holds, the tool can be scheduled as follows. For C_(k), R_(k) unloads (firing μ_(k((b[k]) _(_) ¹⁾⁻¹⁾) a product from PS_(k((b[k]) _(_) ¹⁾⁻¹⁾), and then moves (x_(k((b[k]) _(_) ¹⁾⁻¹⁾) to PS_(k(b[k]) _(_) ₁₎ and loads (t_(k(b[k]) _(_) ₁₎) the product into it. After firing t_(k(b[k]) _(_) ₁₎, u_((k) _(_) ₁₎₀ fires immediately. Then, with a backward strategy, after some time, R_(k) comes to PS_(k((b[k]) _(_) _(f[k])−1)) and u_(k((b[k]) _(_) _(f[k])−1)) fires to unload the product in PS_(k((b[k]) _(_) _(f[k])−1)). Then, R_(k) moves (x_(k((b[k]) _(_) _(f[k])−1)) to PS_(k(b[k]) _(_) _(f[k])) and loads (t_(k(b[k]) _(_) _(f[k]))) the product into it. After firing t_(k(b[k]) _(_) _(f[k])), u_(k) _(_) _(f[k])0) fires immediately. Similarly, the tool can be scheduled such that after firing t_(k(b[k]) _(_) _(q)), q=2, 3, . . . f[k]−1, ends, u_((k) _(_) _(q) 0) fires immediately. In this way, when R_(k) comes to q_(k(b[k]) _(_) ₁₎ again, if C_(k) _(_) ₁ is a single-arm tool and (4.7) is satisfied, C_(k) _(_) ₁ can be scheduled such that firing t_((k) _(_) ₁₎₀ ends before R_(k) comes to q_(k(b[k]) _(_) ₁₎, or u_(k(b[k]) _(_) ₁₎ is enabled when R_(k) comes to q_(k(b[k]) _(_) ₁₎. If C_(k) _(_) ₁ is a dual-arm tool, according to [Yang et al., 2014a], C_(k) _(—1) can be scheduled such that when R_(k) comes to q_(k(b[k]) _(_) ₁₎, u_(k(b[k]) _(_) ₁₎ is enabled. This implies that the interaction of C_(k) and C_(k) _(_) ₁ does not affect the execution of the schedule for C_(k). Similarly, if C_(k) _(_) _(q), q=2, 3, . . . , f[k], is a single-arm tool and (4.7) holds, it can be shown that the interaction of C_(k) and C_(k) _(_) _(q) does not affect the execution of the schedule for C_(k). Similarly, when C_(k) is a dual-arm fork tool, for the D-S case, if (4.6) holds, the theorem holds.

Notice that the conditions given in Theorem 4.1 are the functions of robots' waiting time of single-arm tools and have nothing to do with dual-arm tools. Thus, to schedule a treelike hybrid K-cluster tool is to determine ω_(ij)'s for single-arm tools C_(i), i∈

_(K), j∈Ω_(n[i]), only. By this observation, for a dual-arm tool C_(i), i∈

_(K), simply set ω_(i0)=ψ_(i2)=Π−ψ_(i1). Observe (4.6) and (4.7), it can be concluded that, for a single-arm tool C_(i), i∈

_(K), to make the conditions given in Theorem 4.1 satisfied, it is necessary to set ω_(ij)'s such that ω_(i((b[i]) _(_) _(q)−1)), q∈

_(f[i]), and ω_(i(n[i])) are as small as possible. With this as a rule, the following discussion covers how to determine ω_(ij)'s for the single-arm tools sequentially from the leaves to the head one to find an OSLB.

To ease the presentation, let h(z) be an arbitrary function and define Σ_(x) ^(y)h(z)=0 if x>y. It follows from the discussion of the last section that, for a single-arm tool C_(i), it is necessary to assign R_(i)'s idle time ψ_(i2)=Π−2(n[i]+1)(μ_(i)+λ_(i)) into ω_(ij)'s. For a dual-arm tool C_(i), i∈L, set ω_(ij)=0,j∈

_(n[i]), and ω_(i0)=ψ_(i2)=Π−ψ_(i1). For a single-arm tool C_(i), i∈L, set ω_(ij)=min{Π−(4λ_(i)+3μ_(i)+α_(i(j+1))), Π−ψ_(i1)−Σ_(d=0) ^(j−1) ω_(id)}, j∈Ω_(n[i]−1) such that ω_(i(n[i]))=Π−ψ_(i1)−Σ_(j=0) ^(n[i]−1)ω_(ij) is minimized. Then, for the adjacent upstream tool C_(k) of C_(i) with C_(k) and C_(i) being linked by PS_(k(b[k]) _(_) _(q)), there are altogether four cases.

For Case 1), C_(k) is a dual-arm non-fork tool, check if Π−λ_(k)−4λ_(i)−3μ_(i)−ω_(i(n[i]))≥0. If not, there is no OSLB, otherwise for j∈

_(n[k]), set ω_(kj)=0 and ω_(k0)=ψ_(k2)=Π−ψ_(k1).

For Case 2), C_(k) is a single-arm non-fork tool, check if Π−(4λ_(k)+3μ_(k))−(4λ_(i)+3μ_(i)+ω_(i(n[i])))≥0. If not, there is no OSLB, otherwise set ω_(k[(b[k]) _(_) _(1)−1])=min{Π−(4λ_(k)+3μ_(k))−(4λ_(i)+3μ_(i)+ω_(i(n[i]))), Π−ψ_(k1)}, ψ_(kj)=min{Π−(4λ_(k)+3μ_(k)+α_(k(j+1))), Π−ψ_(k1)−ω_(k((b[k]) _(_) ¹⁾⁻¹⁾−Σ_(d=0) ^(j−1)ω_(kd) (d≠(b[k]_1)−1)}, j∈Ω_(n[k])\{n[k], (b[k]_1)−1}, and ω_(k(n[k]))=Π−ψ_(k1)−ω_(k((b[k]) _(_) ¹⁾⁻¹⁾−Σ_(j=0) ^(n[k]−1) ω_(kj) (j≠(b[k]_1)−1).

For Case 3), C_(k) is a single-arm fork tool, check if Π−(4λ_(k)+3μ_(k))−(4λ_(i)+3μ_(i)+ω_(i(n[i])))≥0. If not, there is no OSLB, otherwise set ω_(k((b[k]) _(_) _(q)−1))=min{Π−(4λ_(k)+3μ_(k))−(4λ_(i)+3μ_(i)+ω_(i(n[i])), Π−ψ_(k1)−Σ_(d=1) ^(q−1)ω_(k((b[k]) _(_) _(d)−1))}, ω_(kj)=min{Π−(4λ_(k)+3μ_(k)+α_(k(j+1))), Π−ψ_(k1)−Σ_(d=1) ^(f[k])ω_(k((b[k]) _(_) _(d)−1))−Σ_(n=0) ^(j−1) ω_(kn) (n∉{(b[k]_h)−1|h∈

_(f[k])})}, j∈Ω_(n[k])\{n[k]}\{(b[k]_h)−1|h∈

_(f[k])}, and ω_(k(n[k]))=Π−ψ_(k1)−Σ_(d=1) ^(f(k))ω_(k((b[k]) _(_) _(d)−1))−Σ_(j=0) ^(n[k]−1)ω_(kj) (j∉{(b[k]_h)−1|h∈

_(f[k])}).

For Case 4), C_(k) is a dual-arm fork tool, check if Π−λ_(k)−4λ_(i)−3μ_(i)−ω_(i(n[i]))≥0. If not, there is no OSLB, otherwise set ω_(kj)=0, j∈

_(n[k]), and ω_(k0)=ψ_(k2)=Π−ψ_(k1).

Then, do the same for the adjacent upstream tool of C_(k) and this process is repeated till C₁ such that an OSLB is obtained if it exists, or the process terminates at a C_(k) with no such a schedule. Based on the above discussion, let Q be a binary variable indicating the existence of an OSLB. Then, the present invention utilises the following algorithm to test the existence of an OSLB and find it if it exists.

Algorithm 4.1: Test the existence of an OSLB for a treelike hybrid K-cluster tool

Step 1: Initialization: Q=1, calculate ψ_(i1) and Π_(i), i∈

_(K), and Π=max {Π₁, Π₂, . . . , Π_(K)}.

Step 2: When i∈L:

2.1. If C_(i) is a single-arm tool

-   -   2.2.1. ω_(ij)=min{Π−(4λ_(i)+3μ_(i)+α_(i(j+1))), Π−ψ_(i1)−Σ_(d=0)         ^(j−1)ω_(id)}, j∈Ω_(n[i]−1), and ω_(i(n[i]))=Π−ψ_(i1)−Σ_(j=0)         ^(n[i]−1) ω_(ij);     -   2.2.2. For its adjacent upstream tool C_(k), if it is a fork         tool, go to Step 7;     -   2.2.3. Otherwise if it is a single-arm tool, go to Step 3, and         if it is a dual-arm tool, Step 4;

2.2. If C_(i) is a dual-arm tool

-   -   2.2.4. ω_(ij)=0, ω_(i0)=ψ_(i2)=Π−ψ_(i1), j∈         _(n[i]);     -   2.2.5. For its adjacent upstream tool C_(k), if it is a fork         tool, go to Step 7;     -   2.2.6. Otherwise if it is a single-arm tool, go to Step 6, and         if it is a dual-arm tool, Step 5;

Step 3: Determine ω_(kj) for R_(k) if C_(k) and C_(i) are S-S.

3.1. If Π−(4λ_(k)+3μ_(k))−(4λ_(i)+3μ_(i)+ω_(i(n[i])))<0, Q=0 and go to Step 8;

3.2. Else, ω_(k((b[k]) _(_) ¹⁾⁻¹⁾=min{Π−(4λ_(k)+3μ_(k))−(4λ_(i)+3μ_(i)+ω_(i(n[i]))), Π−ψ_(k1)};

3.3 ω_(kj)=min{Π−(4λ_(k)+3μ_(k)+α_(k(j+1))), Π−ψ_(k1)−ω_(k((b[k]) _(_) ¹⁾⁻¹⁾−Σ_(d=0) ^(j−1)ω_(kd)(d≠(b[k]_1)−1)}, j∈Ω_(n[k])\{n[k], (b[k]_1)−1};

3.4. ω_(k(n[k]))=Π−ψ_(k1)−ω_(k((b[k]) _(_) ¹⁾⁻¹⁾−Σ_(j=0) ^(n[k]−1) ω_(kj) (j≠(b[k]_1)−1);

3.5. i=k with C_(k) being its adjacent upstream tool. If k=0 go to Step 8, else if C_(k) is a fork tool, go to Step 7; otherwise if it is a single-arm tool, go to Step 3.1, and if it is a dual-arm, go to Step 4;

Step 4: Determine ω_(kj) for R_(k) if C_(k) and C_(i) are D-S.

4.1. If Π−λ_(k)−(4λ_(i)+3μ_(i)+ω_(i(n[i])))<0, let Q=0 and go to Step 8;

4.2. Else, ω_(kj)=0 and ω_(k0)=ψ_(k2)=Π−ψ_(k1), j∈

_(n[k]);

4.3. i=k with C_(k) being its adjacent upstream tool. If k=0 go to Step 8, else if C_(k) is a fork tool, go to Step 7; otherwise, if it is a single-arm tool go to Step 6, and if it is a dual-arm one go to Step 5;

Step 5: Determine ω_(kj) for R_(k) if C_(k) and C_(i) are D-D.

5.1. ω_(kj)=0 and ω_(k0)=ψ_(k2)=Π−ψ_(k1), j∈

_(n[k]);

5.2. i=k with C_(i) being its adjacent upstream tool. If k=0 go to Step 8, else if C_(k) is a fork tool go to Step 7; otherwise, if it is a single-arm tool go to Step 6, and if it is a dual-arm one go to Step 5.1;

Step 6: Determine ω_(kj) for R_(k) if C_(k) and C_(i) are S-D.

6.1. ω_(k[(b[k]) _(_) _(1)−1])=min{Π−(4λ_(k)+3μ_(k))−λ_(i), Π−ψ_(k1)};

6.2. ω_(kj)=min{Π−(4λ_(k)+3μ_(k)+α_(k(j+1))), Π−ψ_(k1)−ω_(k((b[k]) _(_) ¹⁾⁻¹⁾−Σ_(d=0) ^(j−1)ω_(kd) (d≠(b[k]_1)−1)}, j∈Ω_(n[k])\{n[k], (b[k]_1)−1};

6.3. ω_(k(n[k]))=Π−ψ_(k1)−ω_(k((b[k]) _(_) ¹⁾⁻¹⁾−Σ_(j=0) ^(n[k]−1) ω_(kj) (j≠(b[k]_1)−1);

6.4. i=k with C_(k) being its adjacent upstream tool. If k=0 go to Step 8, else if C_(k) is a fork tool go to Step 7; otherwise, if it is a single-arm tool go to Step 3, and if it is a dual-arm one go to Step 4;

Step 7: Determine ω_(kj) for R_(k) if C_(k) is a fork tool.

7.1. If C_(k) is a single-arm fork tool

-   -   7.1.1. For C_(k) and C_(i), when it is S-S, if         Π−(4λ_(k)+3μ_(k))−(4λ_(i)+3μ_(i)+ω_(i(n[i])))<0, let Q=0 and go         to Step 8; otherwise, ω_(k[(b[k]) _(_)         _(q)−1])=min{Π−(4λ_(k)+3λ_(k))−(4λ_(i)+3μ_(i)+ω_(i(n[i]))),         Π−ψ_(k1)−Σ_(d=1) ^(q−1)ω_(k((b[k]) _(_) _(d)−1))}). When it is         S-D case, ω_(k((b[k]) _(_) _(q)−1))=min{Π−(4λk+3μ_(k))−λ_(i),         Π−ψ_(k1)−Σ_(d=1) ^(q−1)ω_(k((b[k]) _(_) _(d)−1))});     -   7.1.2. ω_(kj)=min{Π−(4λ_(k)+3μ_(k)+α_(k(j−1))), Π−ψ_(k1)−Σ_(d=1)         ^(f[k])ω_(k((b[k]) _(_) _(d)−1))−Σ_(n=0)         ^(j−1)ω_(kn)(n∉{(b[k]_h)−1|h∈         _(f[k])})}, j∈Ω_(n[k])\{n[k]}\{(b[k]_h)−1|h∈         _(f[k])};     -   7.1.3. ω_(k(n[k]))Π−ψ_(k1)−Σ_(d=1) ^(f[k])ω_(k((b[k]) _(_)         _(d)−1))−Σ_(j=0) ^(n[k]−1) ω_(kj)(j∉{(b[k]_h)−1|h ∈         _(f[k])});     -   7.1.4. i=k with C_(k) being its adjacent upstream tool. If k=0         go to Step 8, else if C_(k) is a fork tool, go back to Step 7;         otherwise, if it is a single-arm tool go to Step 3, and if it is         a dual-arm one go to Step 4;

7.2. If C_(k) is a dual-arm fork tool

-   -   7.2.1. For C_(k) and C_(i), when it is D-S case, if         Π−λ_(k)−(4λ_(i)+3μ_(i)+ω_(i(n[i])))<0, let Q=0 and go to Step 8,         otherwise, ω_(kj)=0 and ω_(k0)=ψ_(k2)=Π−ψ_(k1), j∈         _(n[k]);     -   7.2.2. When it is D-D case, ω_(kj)=0 and ω_(k0)=ψ_(k2)=Π−ψ_(k1),         j∈         _(n[k]);     -   7.2.3. i=k with C_(k) being its adjacent upstream cluster. If         k=0 go to Step 8, else if C_(k) is a fork tool, go back to Step         7; otherwise, if it is a dual-arm tool go to Step 5, and if it         is a single-arm tool, go to Step 6.

Step 8: End and return Q.

Using Algorithm 4.1, if Q=1 is returned, an OSLB is found for a process-dominant treelike hybrid K-cluster tool, otherwise there is no such a schedule. Based on Algorithm 4.1, to check if LB of cycle time can be achieved for a treelike hybrid K-cluster tool, it is necessary to set the robot waiting time from the leaf to the head one by one. In the worst case when Q=1 is returned, it is only necessary to set the robot waiting time for each individual tool once and check condition 4.6 or 4.7 for each buffering module once. Let H=max(n[1]+1, n[2]+1, . . . , n[K]+1). Since it is necessary need to set ω_(ij) for each Step j in C_(i), i∈

_(K), j∈Ω_(n[i]), there are at most H×K operations in setting the robot waiting time. Meanwhile, there are K−1 buffering modules for checking Condition 4.6 or 4.7. Hence, there are at most (H+1)×K−1 operations altogether. With H and K being bounded to known constants, the computational complexity of Algorithm 4.1 is bounded by a constant and thus it is very efficient.

EXAMPLE 1

Example 1 is a treelike hybrid 3-cluster tool, where dual-arm tool C₁ is a fork tool and its adjacent downstream tools are single-arm tools C₂ and C₃. In this example, their activity time is as follows. For C₁, (α₁₀, α₁₁, α₁₂, α₁₃, λ₁, μ₁)=(0, 77, 0, 0, 13, 1); for C₂, (α₂₀, α₂₁, α₂₂, λ₂, μ₂)=(0, 65, 69, 4, 1); for C₃, (α₃₀, α₃₁, α₃₂, λ₃, μ₃)=(0, 61, 55, 6, 1).

For C₁, ξ₁₀=13 s, ξ₁₁=90 s, ξ₁₂=13 s, ξ₁₃=13 s, ψ₁₁=(n[1]+1)×(λ₁+μ₁)=4×14=56 s, Π₁=90 s and it is process-bound. For C₂, ξ₂₀=19 s, ξ₂₁=84 s, ξ₂₂=88 s, ψ₂₁=2(n[2]+1)×(λ₂+μ₂)=6×5=30 s and Π₂=88 s. For C₃, ξ₃₀=27 s, ξ₃₁=88 s, ξ₃₂=82 s, ψ₃₁=2(n[3]+1)×(λ₃+μ₃)=6×7=42 s and Π₃=88 s. This 3-cluster tool is process-dominant with Π₁>Π₂=Π₃ and let Π=Π₁=π₁=π₂=π₃=90 s. By Algorithm 4.1, the robots' waiting time is set as ω₂₀=6 s, ω₂₁=2 s, and ω₂₂=Π−ψ₂₁−ω₂₀−ω₂₁=90−30−6−2=52 s; ω₃₀=2 s, ω₃₁=8 s, and ω₃₂=Π−ψ₃₁−ω₃₀−ω₃₁=90−42−2−8=38 s. Then, for C₁, as Π−(4λ₂+3μ₂+ω₂₂)−λ₁=90−(19+52)−13=6>0 and, Π−(4λ₃+3μ₃+ω₃₂)−λ₁=90−(27+38)−13=12>0, from Algorithm 4.1, a cyclic schedule with lower bound of cycle time can be obtained by setting ω₁₀=34 s, ω₁₁=ω₁₂=ω₁₃=0. Simulation is used to verify the correctness of the schedule as shown in Table II.

From Table II, it can be seen that, by firing u₂₀ immediately after R₁'s swap operation at p₁₂, when R₂ (R₁) is scheduled to unload a product from p₂₀(p₁₂), M(p₂₀)=1(M(p₁₂)=1); when R₂(R₁) is scheduled to load a product into p₂₀(p₁₂), M(p₂₀)=0(M(p₁₂)=0). Similarly, R₃(R₁) can act as scheduled without being delayed by a buffering module if u₃₀ fire immediately after R₁'s swap operation at p₁₃. The Gantt chart for the schedule obtained is shown in FIG. 5. It shows that the schedule obtained is a one-product cyclic one with its cycle time being the lower bound.

TABLE II The simulation result for example 1. C₁ C₂ C₃ Time Time Robot Time NO. interval(s) Robot action NO. interval(s) action NO. interval(s) Robot action 1   0-13  Swap 1 13-17  Unload 1  27-33  Unload   at p₁₂ from p₂₀   from p₃₀ 2  13-14  Move 2 17-18  Move to 2  33-34  Move to   to p₁₃ p₂₁   p₃₁ 3  14-27  Swap 3 18-22  Load 3  34-40  Load   at p₁₃ into p₂₃   into p₃₁ 4  27-28  Move 4 22-23  Move to 4  40-41  Move to   to p₁₀ p₂₂   p₃₂ 5  28-62  Wait at 5 23-75  Wait at 5  41-79  Wait at   p₁₀ p₂₂   p₃₂ 6  62-75  Swap 6 75-79  Unload 6  79-85  Unload   at p₁₀ from p₂₂   from p₃₂ 7  75-76  Move 7 79-80  Move to 7  85-86  Move to   to p₁₁ p₂₀   p₃₀ 8  76-89  Swap 8 80-84  Load 8  86-92  Load   at p₁₁ into p₂₀   into p₃₀ 9(Π)  89-90  Move 9 84-85  Move to 9  92-93  Move to   to p₁₂ p₂₁   p₃₁ 10  90-103 Swap 10 85-87  Wait at 10  93-101 Wait at at p₁₂ p₂₁ p₃₁ 11 103-104 Move 11 87-91  Unload 11 101-107 Unload to p₁₃ from p₂₁ from p₃₁ 12 104-117 Swap 12 91-92  Move to 12 107-108 Move to at p₁₃ p₂₂ p₃₂ 13 117-118 Move 13 92-96  Load 13 108-114 Load to p₁₀ into p₂₂ into p₃₂ 14 118-152 Wait at 14 96-97  Move to 14 114-115 Move to p₁₀ p₂₀ p₃₀ 15 152-165 Swap 15(Π) 97-103 Wait at 15(Π) 115-117 Wait at at p₁₀ p₂₀ p₃₀

EXAMPLE 2

Example 2 is a treelike hybrid 5-cluster tool, where C₂ is a fork tool and its adjacent tools are C₁, C₃ and C₅. C₅ and C₄ that is adjacent to C₃ are leaf tools. Furthermore, C₁ is a dual-arm tool and the others are all single-arm tools. Their activity time is as follows: for C₁, (α₁₀, α₁₁, λ₁, μ₁)=(0, 61.5, 0, 28.5, 0.5); for C₂, (α₂₀, α₂₁, α₂₂, λ₂, μ₂)=(0, 0, 0, 10, 1); for C₃, (α₃₀, α₃₁, α₃₂, α₃₃, λ₃, μ₃)=(0, 56, 0, 58, 7, 1); for C₄, (α₄₀, α₄₁, α₄₂, α₄₃, λ₄, μ₄)=(0, 56, 66, 65, 5, 1); and for C₅, (α₅₀, α₅₁, α₅₂, λ₅, μ₅)=(0, 48, 50, 6, 1).

For C₁, ξ₁₀=28.5 s, ξ₁₁=90 s, ξ₁₂=28.5 s, ψ₁₁, ψ₁₁=(n[1]+1)×(λ₁+μ₁)=3×29=87 s, Π₁=90 s, and it is process-bound. For C₂, ξ₂₀=43 s, μ₂₁=43 s, ξ₂₂=43 s, ψ₂₁=2(n[2]+1)×(λ₂+μ₂)=2×3×11=66 s, and Π₂=66 s. For C₃, ξ₃₀=31 s, ξ₃₁=87 s, ξ₃₂=31 s, ξ₃₃=89 s, ψ₃₁=2(n[3]+1)×(λ₃+μ₃)=2×4×8=64 s, and Π₃=89 s. For C₄, ξ₄₀=23 s, ξ₄₁=79 s, ξ₄₂=89 s, ξ₄₃=88 s, ψ₄₁=2(n[4]+1)×(λ₄+μ₄)=2×4×6=48 s, and Π₄=89 s. For C₅, ξ₅₀=27 s, ξ₅₁=75 s, ξ₅₂=77 s, ψ₅₁=2(n[5]+1)×(λ₅+μ₅)=2×3×7=42 s, and Π₅=77 s. This is shown that it is process-dominant with Π=Π₁=90 s. Next, let Π=π₁=π₂=π₃=π₄=π₅=90 s.

By Algorithm 4.1, for C₄, ω₄₀=11 s, ω₄₁=1 s, ω₄₂=2 s, and ω₄₃=Π−ψ₄₁−ω₄₀−ω₄₁−ψ₄₂=90−48−11−1−2=28 s. For C₅, ψ₅₀=15 s, ω₅₁=13 s, and ω₅₂=Π−ω₅₁−ω₅₀−ω₅₁=90−42−15−13=20 s. For C₃, since Π−(4λ₄+3μ₄+ω₄₃)−(4λ₃+3μ₃)=90−(23+28)−31=8>0, set ω₃₁=min{8,Π−ψ₃₁}=min{8,26}=8 s, ω₃₀=min{90−ξ₃₁,Π−ψ₃₁−ω₃₁}=min{3,26−8}=3 s, ω₃₂=min{90−ξ₃₃,Π−ψ₃₁−ω₃₁−ω₃₀}=min{1,26−8−3}=1 s, and ω₃₃=Π−ψ₃₁−ω₃₀−ω₃₂=26−8−3−1=14 s. For C₂, Π−(4λ₃+μ₃+ω₃₃)−(4λ₂+3μ₂)=90−(31+14)−43=2>0, set ω₂₀=min{2,Π−ψ₂₁}=min{2,24}=2 s. With Π−(4λ₅+3μ₅+ω₅₂)−(4λ₂+3μ₂)=90−(27+20)−43=0, set ω₂₁=min{0,Π−ψ₂₁−ω₂₀}=min{0,22}=0. At last, set ω₂₂=Π−ψ₂₁−ω₂₀−ω₂₁=24−2−0=22 s. For C₁ and C₂, since Π−(4λ₂+3μ₂+ω₂₂)−λ₁=90−(43+22)−28.5=−3.5<0, or condition (4.6) is violated, i.e., there is no one-product cyclic schedule to achieve its lower bound and this result can also be verified by simulation.

The embodiments of the present invention are particularly advantageous as it provides a solution for scheduling a treelike multi-cluster tool with a complex topology which is process-bound. By developing a Petri net model to describe the system based mainly on the buffering modules, the necessary and sufficient conditions under which a one-wafer cyclic schedule with the lower bound of cycle time can be found. The present invention also proposes an efficient algorithm to test whether such a schedule exists and to find it if it exists.

Although not required, the embodiments described with reference to the Figures can be implemented as an application programming interface (API) or as a series of libraries for use by a developer or can be included within another software application, such as a terminal or personal computer operating system or a portable computing device operating system. Generally, as program modules include routines, programs, objects, components and data files assisting in the performance of particular functions, the skilled person will understand that the functionality of the software application may be distributed across a number of routines, objects or components to achieve the same functionality desired herein.

It will also be appreciated that where the methods and systems of the present invention are either wholly implemented by computing system or partly implemented by computing systems then any appropriate computing system architecture may be utilized. This will include stand-alone computers, network computers and dedicated hardware devices. Where the terms “computing system” and “computing device” are used, these terms are intended to cover any appropriate arrangement of computer hardware capable of implementing the function described.

It will be appreciated by persons skilled in the art that numerous variations and/or modifications may be made to the invention as shown in the specific embodiments without departing from the spirit or scope of the invention as broadly described. The present embodiments are, therefore, to be considered in all respects as illustrative and not restrictive.

Any reference to prior art contained herein is not to be taken as an admission that the information is common general knowledge, unless otherwise indicated. 

The invention claimed is:
 1. A method for determining an optimized production schedule of a production line including a hybrid multi-cluster tool formed by a plurality of single-arm tools and dual-arm tools interconnected with each other; wherein each single-arm tool includes one robotic arm for manipulating an object and at least one processing module for processing the object or a buffering module for holding the object, and each dual-arm tool includes two robotic arms for manipulating an object and at least one processing module for processing the object or a buffering module for holding the object; each single-arm tool and dual arm tool are connected with each other through at least one buffering module; the method comprising the steps of: determining time for individual operations of the robotic arm and the processing module in the plurality of single-arm tools and dual-arm tools; determining waiting time of the single-arm tools and dual-arm tools based on the time for individual operations and different connection relationships of the plurality of single-arm tools and dual-arm tools; determining whether the optimized production schedule exists using the determined waiting time, wherein the optimized production schedule only exists if the hybrid multi-cluster tool is process-dominant where the robot activity time of the plurality of single-arm tools and dual-arm tools is shorter than processing time at the processing module; and determining the optimized production schedule if the optimized production schedule exists, wherein the hybrid multi-cluster tool has a non-cyclic treelike structure with at least one of the single-arm tools and dual-arm tools being connected with three or more adjacent single-arm tools and dual-arm tools.
 2. The method in accordance with claim 1, wherein the step of determining the time for individual operations of the robotic arm and the processing module in the plurality of single-arm tools and dual-arm tools comprises the step of determining one or more of: a time required for the robotic arm of the single-arm tool to load or unload the object; a time required for the robotic arms of the dual-arm tool to swap; a time required for the robotic arm of the single-arm tool or the dual-arm tool to move while holding the object; a time required for the robotic arm of the single-arm tool to move without holding the object; a time required for processing the object in the processing module of the single-arm tool or the dual-arm tool; a time required for resting the object in the processing module of the single-arm tool or the dual-arm tool; a time required for the robotic arm of the single-arm tool to wait before unloading the object; a time required for the robotic arms of the dual-arm tool to wait at the processing module of the dual-arm tool; and a time required for the robotic arms of the dual-arm tool to wait during swap at the processing module of the dual arm tool.
 3. The method in accordance with claim 2, wherein the different connection relationships comprise: an upstream downstream relationship that includes an upstream single-arm tool and downstream single-arm tool connection, an upstream single-arm tool and a downstream dual-arm tool connection, an upstream dual-arm tool and a downstream single-arm tool connection, or an upstream dual-arm tool and a downstream dual-arm tool connection; and a number relationship that includes a number of adjacent single-arm or the dual-arm tools of which the respective single-arm tool or the dual-arm tool is connected to.
 4. The method in accordance with claim 3, wherein the step of determining whether the optimized production schedule exists using the time for individual operations and the waiting time comprises: calculating an robot activity time of each of the single-arm tools and dual-arm tools in a production cycle without waiting using the time for individual operations; calculating a period of each of the single-arm tools and dual-arm tools using the time for individual operations; determining a maximum period from the calculated periods; determining a robot waiting time of each of the plurality of single-arm tools and dual-arm tools using the maximum period; evaluating the robot waiting time determined so as to determine if the optimized production schedule exists.
 5. The method in accordance with claim 4, wherein the step of determining the optimized production schedule comprises setting an optimal robot waiting time for each of the plurality of single-arm tools and dual-arm tools based on the determination results without interfering with the operation of the buffering modules.
 6. The method in accordance with claim 1, wherein the object is a semiconductor and the production line is a semiconductor manufacturing line.
 7. The method in accordance with claim 1, wherein the optimized production schedule comprises a shortest time for completion of a cycle of production of the object.
 8. A computerized system arranged to determine an optimized production schedule of a production line including a hybrid multi-cluster tool formed by a plurality of single-arm tools and dual-arm tools interconnected with each other; wherein each single arm tool includes one robotic arm for manipulating an object and at least one processing module for processing the object or a buffering module for holding the object, and each dual-arm tool includes two robotic arms for manipulating an object and at least one processing module for processing the object or a buffering module for holding the object; each single-arm tool and dual-arm tool are connected with each other through at least one buffering module; the computerized system comprising: a Petri-Net (PN) model computation module arranged for: determining time for individual operations of the robotic arm and the processing module in the plurality of single arm tools and dual arm tools; determining robot waiting time of the single-arm tools and dual-arm tools based on the time for individual operations and different connection relationships of the plurality of single arm tools and dual arm tools; determining whether the optimized production schedule exists using the determined robot waiting time, wherein the optimized production schedule only exists if the hybrid multi-cluster tool is process-dominant where the robot activity time of the plurality of single-arm tools and dual-arm tools is shorter than processing time at the processing module; and determining the optimized production schedule if the optimized production schedule exists, wherein the hybrid multi-cluster tool has a non-cyclic treelike structure with at least one of the single-arm tools and dual-arm tools being connected with three or more adjacent single-arm tools and dual-arm tools.
 9. The computerized system in accordance with claim 8, wherein determining the time for individual operations of the robotic arm and the processing module in the plurality of single arm tools and dual arm tools comprises determining one or more of: a time required for the robotic arm of the single-arm tool to load or unload the object; a time required for the robotic arms of the dual-arm tool to swap; a time required for the robotic arm of the single-arm tool or the dual-arm tool to move while holding the object; a time required for the robotic arm of the single-arm tool to move without holding the object; a time required for processing the object in the processing module of the single-arm tool or the dual arm tool; a time required for resting the object in the processing module of the single-arm tool or the dual arm tool; a time required for the robotic arm of the single-arm tool to wait before unloading the object; a time required for the robotic arms of the dual-arm tool to wait at the processing module of the dual arm tool; and a time required for the robotic arms of the dual-arm tool to wait during swap at the processing module of the dual arm tool.
 10. The computerized system in accordance with claim 9, wherein the different connection relationships comprise: an upstream downstream relationship that includes an upstream single-arm tool and downstream single-arm tool connection, an upstream single-arm tool and a downstream dual-arm tool connection, an upstream dual-arm tool and a downstream single-arm tool connection, or an upstream dual-arm tool and a downstream dual-arm tool connection; and a number relationship that includes a number of adjacent single-arm or the dual-arm tools of which the respective single-arm tool or the dual-arm tool is connected to.
 11. The computerized system in accordance with claim 10, wherein the Petri-Net (PN) model computation module is arranged to determine whether the optimized production schedule exists using the time for individual operations and the waiting time by: calculating an activity time of each of the single-arm tools and dual-arm tools in a production cycle without robot waiting using the time for individual operations; calculating a period of each of the single-arm tools and dual-arm tools using the time for individual operations; determining a maximum period from the calculated periods; determining a robot waiting time of each of the plurality of single-arm tools and dual-arm tools using the maximum period; evaluating the robot waiting time determined so as to determine if the optimized production schedule exists.
 12. The computerized system in accordance with claim 11, wherein the Petri-Net (PN) model computation module is arranged to determine the optimized production schedule by setting an optimal robot waiting time for each of the plurality of single-arm tools and dual-arm tools based on the determination results without interfering with the operation of the buffering modules.
 13. The computerized system in accordance with claim 8, wherein the optimized production schedule comprises a shortest time for completion of a cycle of production of the object.
 14. The computerized system in accordance with claim 8, wherein the object is a semiconductor and the production line is a semiconductor manufacturing line. 